﻿using System.Collections.Generic;
using System.Windows;

using ModelingProjectLib;
using System.Diagnostics;

namespace INSAwarsWPF
{
    /// <summary>
    /// Logique d'interaction pour MainWindow.xaml
    /// </summary>
    public partial class MainView : Window
    {
        private JeuImplem jeu;
        private MenuView mc;

        public MainView()
        {
            jeu = new JeuImplem();
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            // demande les infos de création de partie
            mc = new MenuView();
            mc.Owner = this;
            mc.ShowDialog();

            // Récupérer taille de la carte
            int tailleCarte;

            if (mc.comboBoxTaille.SelectedIndex == 0)
                tailleCarte = 25;
            else
                tailleCarte = 100;

            // ici il faut récupérer les données pour monter la fenêtre de jeu

            Dictionary<string, string> mapJ = new Dictionary<string, string>();

            string[] TabCiv = new string[2];
            TabCiv[0] = "EII";
            TabCiv[1] = "INFO";

            for (int i = 0; i < 4; i++)
            {
                if (mc.ListNoms[i] != "")
                {
                    // TODO gérer les exceptions si nom vide
                    // TODO gérer les noms identiques
                    // TODO gérer la fermeture de la fenêtre par la croix
                    //Trace.WriteLine(mc.ListNoms[i] + " (" + mc.TabIndexCiv[i] + ")");
                        mapJ.Add(mc.ListNoms[i], TabCiv[mc.TabIndexCiv[i]]);
                }
            }


            // TODO : fenetre de chargement

            jeu.nouvellePartie(tailleCarte, mapJ);

            this.Hide();

            GameView gw = new GameView(jeu.PartieCourante);
            gw.ShowDialog();

            this.Show();
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }
    }
}
